package com.dataseek.iot.product.utils;

import com.dataseek.iot.product.entity.PdtCategory;
import com.dataseek.iot.product.vo.CtgVo;

import java.util.ArrayList;
import java.util.List;

/**
 * @discription:
 * @author: Freya.Yan
 * @date: 2022/3/16
 */
public class GetCtgChildUtil {

    public static void findChilds(CtgVo root, List<PdtCategory> list){
        List<CtgVo> childlist=new ArrayList<>();
        //遍历所有数据，找到是入参父节点的子节点的数据，然后加到childlist集合中。
        for (PdtCategory pdtCategory :
                list) {
            Long pId = pdtCategory.getParentId();
            if (pId !=null && root.getId()==pId) {
                CtgVo ctgVo = new CtgVo();
                ctgVo.setId(pdtCategory.getId());
                ctgVo.setCtgName(pdtCategory.getCtgName());
                ctgVo.setCtgCode(pdtCategory.getCtgCode());
                ctgVo.setParentId(pdtCategory.getParentId());
                childlist.add(ctgVo);
            }
        }
        //若子节点不存在，那么就不必再遍历子节点中的子节点了 直接返回。
        if(childlist.size()==0) {
            return;
        }
        //设置父节点的子节点列表
        root.setChilds(childlist);
        //若子节点存在，接着递归调用该方法，寻找子节点的子节点。
        for (CtgVo childs :
                childlist) {
            findChilds(childs, list);
        }
    }
}
